/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

import java.util.Scanner;

/**
 *
 * @author marduke
 */
public class Fotos {

    int DEFAULT = 1800;

    public static String consoleCommand() {
        Scanner sc = new Scanner(System.in);
        String retorno = new String();
        String tmp[];
        boolean valido = false;


        while (!valido) {
            System.out.println("Introduzca el comando que desee ejecutar.");
            String comando = sc.next();
            comando = comando.toUpperCase();
            if (comando.compareTo("C") == 0) {
                System.out.println("Ha solicitado una operación de consulta");
                retorno = "Consulta";

                if (sc.hasNext()) {

                    comando = sc.next();

                    if (comando.compareTo("-t") == 0) {
                        retorno += " titulo";
                        comando = sc.nextLine();
                        retorno += " " + comando;
                        valido = true;
                    } else if (comando.compareTo("-k") == 0) {
                        retorno += " clave";
                        comando = sc.nextLine();
                        retorno += " " + comando;
                        valido = true;
                    } else {
                        System.out.println("No son argumentos válidos.");
                    }
                } else {
                    System.out.println("Faltan argumentos");
                }

            } else if (comando.compareTo("D") == 0) {
                retorno = "Solicitud";

                if (sc.hasNext()) {
                    comando = sc.next();
                    tmp = comando.split(":");
                    retorno += " " + tmp[0] + " " + tmp[1];
                    valido = true;
                }
                //System.out.println("Esta pidiendo una solicitud de archivo");
            } else if (comando.compareTo("A") == 0) {
                retorno = "Alcanzables";
                valido = true;
                //System.out.println("Esta pidiendo numero de nodos alcanzables");
            } else if (comando.compareTo("Q") == 0) {
                System.out.println("Desea salir del programa?");
                System.exit(-3);
            } else {
                System.out.println("Introdujo un comando inválido.");
            }
        }

        return retorno;
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        String servidor = "";
        int puerto = 0;

        Cliente conexion;


        if (args.length != 4) {
            System.out.println("Error en los argumentos.\n "
                    + "Uso: \n"
                    + "Fotos -s <Maquina servidor> -p <puerto> \n "
                    + "Donde:\n"
                    + "<maquina servidor>: es el nombre o direccion IP del nodo"
                    + "al que se conectara fotos para hacer las solicitudes.\n"
                    + "<puerto>: es el puerto por el ucal estara escuchando el"
                    + "programa nodos en la maquina servidor.");
            System.exit(-1);
        } else {

            for (int i = 0; i < args.length; i = i + 2) {
                if (args[i].compareTo("-s") == 0) {
                    servidor = args[i + 1];
                } else if (args[i].compareTo("-p") == 0) {
                    puerto = Integer.parseInt(args[i + 1]);
                } else {
                    System.out.println("Argumento inválido " + args[i]);
                    System.exit(-1);
                }
            }

        }

        System.out.println("El servidor es: " + servidor);
        System.out.println("Elpuerto es: " + puerto);

        while (true) {
            String protocolo = consoleCommand();
            conexion = new Cliente(servidor, puerto, protocolo);
            conexion.run();

        }


    }
}
